跳到主要内容
版本: 5.0

RocketMQ Connect 概述

RocketMQ Connect 是 RocketMQ 数据集成的重要组件,可以高效、可靠地在 RocketMQ 和各种系统之间传输数据。它是一个独立的、分布式、可伸缩且容错的系统,具有低延迟、高可靠性、高性能、低代码和强可伸缩性。它可以实现各种异构数据系统连接、数据管道构建、ETL、CDC 和数据湖能力。

RocketMQ Connect Overview

Connector 工作原理

RocketMQ Connect 是一个独立的、分布式、可伸缩且容错的系统,主要为 RocketMQ 提供与各种外部系统数据进出的能力。用户无需编程,只需简单配置即可使用 RocketMQ Connect,例如将数据从 MySQL 同步到 RocketMQ,只需配置账户密码、连接地址以及需要同步的数据库和表名。

Connector 用例

构建流式数据管道

RocketMQ Connect使用场景

在业务系统中,MySQL 优秀的事务支持用于处理数据的增删改,ElasticSearch 和 Solr 用于实现强大的搜索能力,或者将生成的业务数据同步到数据分析系统和数据湖(如 Hudi)进行进一步处理,从而使数据产生更高的价值。使用 RocketMQ Connect,可以轻松实现这种数据管道能力。只需配置三个任务:第一个任务是从 MySQL 获取数据,第二个和第三个任务是从 RocketMQ 消费数据到 ElasticSearch 和 Hudi。配置这三个任务就实现了从 MySQL 到 ElasticSearch 和 MySQL 到 Hudi 的两条数据管道,这不仅可以满足业务中的事务需求,也可以满足搜索需求,同时还可以构建数据湖。

CDC

CDC 作为 ETL 模式之一,可以近乎实时地捕获数据库的 INSERT、UPDATE、DELETE 更改,RocketMQ Connect 流式数据传输,具有高可用和低延迟特性,通过 connector 轻松实现 CDC。

Connector 部署

创建 Connector 时,通常通过配置完成。Connector 通常包括逻辑 Connector 和执行数据复制的 Task(即物理线程),如下图所示,两个 Connector 连接器及其对应的运行中 Task 任务。

RocketMQ Connect任务模型1

一个 Connector 也可以同时运行多个任务,以提高 Connector 的并行度。例如,下图中的 Hudi Sink Connector 有 2 个任务,每个任务处理不同的分片数据,从而提高 Connector 的并行度并改善处理性能。

RocketMQ Connect任务模型2

RocketMQ Connect Worker 支持集群和单机两种运行模式。在集群模式下,顾名思义,有多个 Worker 节点,建议至少有 2 个 Worker 节点以组成高可用集群。集群配置信息、偏移量信息和状态信息存储在指定的 RocketMQ Topic 中。一个新的 Worker 节点也会获取这些配置、偏移量和状态信息,并触发负载均衡以重新分配集群中的任务,以达到平衡状态;当 Worker 节点数量减少或 Worker 节点宕机时,也会触发负载均衡,以确保集群中所有任务都能在集群的存活节点上正常运行。

RocketMQ Connect部署模型集群

在单机模式下,Connector 任务运行在单台机器上,Worker 本身不具备高可用性,任务偏移量信息在本地持久化。它适用于没有高可用性要求或不需要 Worker 保证高可用性的场景,例如部署在由 K8s 集群保证高可用的场景。

RocketMQ Connect部署模型单机